In [1]:
! pip install plotly==5.6.0
! pip install "notebook>=5.3" "ipywidgets>=7.5"
Requirement already satisfied: plotly==5.6.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (5.6.0)
Requirement already satisfied: tenacity>=6.2.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from plotly==5.6.0) (8.0.1)
Requirement already satisfied: six in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from plotly==5.6.0) (1.16.0)
Requirement already satisfied: notebook>=5.3 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (6.4.5)
Requirement already satisfied: ipywidgets>=7.5 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (7.6.5)
Requirement already satisfied: nbformat in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (5.1.3)
Requirement already satisfied: traitlets>=4.2.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (5.1.0)
Requirement already satisfied: ipython-genutils in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (0.2.0)
Requirement already satisfied: jinja2 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (2.11.3)
Requirement already satisfied: prometheus-client in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (0.11.0)
Requirement already satisfied: tornado>=6.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (6.1)
Requirement already satisfied: jupyter-core>=4.6.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (4.8.1)
Requirement already satisfied: jupyter-client>=5.3.4 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (6.1.12)
Requirement already satisfied: ipykernel in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (6.4.1)
Requirement already satisfied: terminado>=0.8.3 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (0.9.4)
Requirement already satisfied: nbconvert in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (6.1.0)
Requirement already satisfied: pyzmq>=17 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (22.2.1)
Requirement already satisfied: Send2Trash>=1.5.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (1.8.0)
Requirement already satisfied: argon2-cffi in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from notebook>=5.3) (20.1.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipywidgets>=7.5) (1.0.0)
Requirement already satisfied: ipython>=4.0.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipywidgets>=7.5) (7.29.0)
Requirement already satisfied: widgetsnbextension~=3.5.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipywidgets>=7.5) (3.5.1)
Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipykernel->notebook>=5.3) (0.1.2)
Requirement already satisfied: debugpy<2.0,>=1.0.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipykernel->notebook>=5.3) (1.4.1)
Requirement already satisfied: appnope in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipykernel->notebook>=5.3) (0.1.2)
Requirement already satisfied: setuptools>=18.5 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (58.0.4)
Requirement already satisfied: backcall in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (0.2.0)
Requirement already satisfied: jedi>=0.16 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (0.18.0)
Requirement already satisfied: pexpect>4.3 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (4.8.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (3.0.20)
Requirement already satisfied: decorator in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (5.1.0)
Requirement already satisfied: pygments in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (2.10.0)
Requirement already satisfied: pickleshare in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets>=7.5) (0.7.5)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets>=7.5) (0.8.2)
Requirement already satisfied: python-dateutil>=2.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jupyter-client>=5.3.4->notebook>=5.3) (2.8.2)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbformat->notebook>=5.3) (3.2.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->notebook>=5.3) (0.18.0)
Requirement already satisfied: six>=1.11.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->notebook>=5.3) (1.16.0)
Requirement already satisfied: attrs>=17.4.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->notebook>=5.3) (21.2.0)
Requirement already satisfied: ptyprocess>=0.5 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets>=7.5) (0.7.0)
Requirement already satisfied: wcwidth in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets>=7.5) (0.2.5)
Requirement already satisfied: cffi>=1.0.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from argon2-cffi->notebook>=5.3) (1.14.6)
Requirement already satisfied: pycparser in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from cffi>=1.0.0->argon2-cffi->notebook>=5.3) (2.20)
Requirement already satisfied: MarkupSafe>=0.23 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from jinja2->notebook>=5.3) (1.1.1)
Requirement already satisfied: defusedxml in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.7.1)
Requirement already satisfied: entrypoints>=0.2.2 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.3)
Requirement already satisfied: mistune<2,>=0.8.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.8.4)
Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.5.3)
Requirement already satisfied: testpath in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.5.0)
Requirement already satisfied: bleach in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (4.0.0)
Requirement already satisfied: pandocfilters>=1.4.1 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (1.4.3)
Requirement already satisfied: jupyterlab-pygments in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbconvert->notebook>=5.3) (0.1.2)
Requirement already satisfied: nest-asyncio in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=5.3) (1.5.1)
Requirement already satisfied: async-generator in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=5.3) (1.10)
Requirement already satisfied: packaging in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from bleach->nbconvert->notebook>=5.3) (21.0)
Requirement already satisfied: webencodings in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from bleach->nbconvert->notebook>=5.3) (0.5.1)
Requirement already satisfied: pyparsing>=2.0.2 in /Users/Momo/opt/anaconda3/lib/python3.9/site-packages (from packaging->bleach->nbconvert->notebook>=5.3) (3.0.4)
In [2]:
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly import graph_objs as go
In [3]:
brain_d = pd.read_csv("./data/kirby21AllLevels.csv", header = 0)
brain_d = brain_d.drop(brain_d.columns[0], axis = 1)
brain_d.head()
Out[3]:
rawid roi volume min max mean std type level id icv tbv
0 kirby127a_3_1_ax.img Telencephalon_L 531111 0.0 374.0 128.3013 51.8593 1 1 127 1378295 1268519
1 kirby127a_3_1_ax.img Telencephalon_R 543404 0.0 300.0 135.0683 53.6471 1 1 127 1378295 1268519
2 kirby127a_3_1_ax.img Diencephalon_L 9683 15.0 295.0 193.5488 32.2733 1 1 127 1378295 1268519
3 kirby127a_3_1_ax.img Diencephalon_R 9678 10.0 335.0 193.7051 32.7869 1 1 127 1378295 1268519
4 kirby127a_3_1_ax.img Mesencephalon 10268 55.0 307.0 230.8583 29.2249 1 1 127 1378295 1268519
In [4]:
brain_t1l1 = brain_d.loc[(brain_d.type == 1) & (brain_d.level == 1)]
vol_t1l1 = brain_t1l1.groupby(brain_t1l1.roi).agg(volume=("volume", "sum")).reset_index()
vol_t1l1
Out[4]:
roi volume
0 CSF 1761614
1 Diencephalon_L 180118
2 Diencephalon_R 181723
3 Mesencephalon 206457
4 Metencephalon 2979968
5 Myelencephalon 90339
6 Telencephalon_L 10027994
7 Telencephalon_R 10194129
In [5]:
label = ["ICV"] + list(vol_t1l1.roi)
source = [0]*len(vol_t1l1)
target = np.arange(1,9)
value = list(vol_t1l1.volume)

fig = go.FigureWidget(data=[go.Sankey(
    node = dict(
      pad = 15,
      thickness = 20,
      line = dict(color = "black", width = 0.5),
      label = label
    ),
    link = dict(
      source = source,
      target = target,
      value = value
  ))])

fig.show()